<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>无人深空 - I am alone, but I don't feel lonely.</title><meta name="author" content="zcm"><meta name="copyright" content="zcm"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="无人深空">
<meta property="og:url" content="https://gitee.com/zcmmmm/zcmmmm/page/2/index.html">
<meta property="og:site_name" content="无人深空">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://s2.loli.net/2022/09/22/36LN4kcjYOd9HT8.jpg">
<meta property="article:author" content="zcm">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://s2.loli.net/2022/09/22/36LN4kcjYOd9HT8.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://gitee.com/zcmmmm/zcmmmm/page/2/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"/search.xml","preload":false,"languages":{"hits_empty":"找不到您查询的内容：${query}"}},
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":200},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#1f1f1f","position":"bottom-left"},
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '无人深空',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2023-05-18 19:46:05'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><link rel="stylesheet" href="/css/categories.css?v1"><link rel="stylesheet" href="/css/navigation.css?v1"><link rel="stylesheet" href="/css/custom.css?v1"><meta name="generator" content="Hexo 6.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://s2.loli.net/2022/09/22/36LN4kcjYOd9HT8.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">43</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">25</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">11</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="not-top-img" id="page-header"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">无人深空</a></span><div id="menus"></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div></div><div id="nav-right"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i></a></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/30/kafka%E9%9D%A2%E7%BB%8F/" title="Kafka面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Kafka/kafka.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Kafka面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/30/kafka%E9%9D%A2%E7%BB%8F/" title="Kafka面经">Kafka面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-30T11:47:38.000Z" title="发表于 2022-10-30 19:47:38">2022-10-30</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E4%B8%AD%E9%97%B4%E4%BB%B6/">中间件</a></span></div><div class="content">1.kafka 的作用 &#x2F; 为什么要用 kafka
缓冲和削峰

上游数据时有突发流量，下游可能扛不住，或者下游没有足够多的机器来保证冗余
kafka 在中间可以起到一个缓冲的作用，把消息暂存在 kafka 中，下游服务就可以按照自己的节奏进行慢慢处理


解耦和扩展性

项目开始的时候，并不能确定具体需求
消息队列可以作为一个接口层，解耦重要的业务流程
只需要遵守约定，针对数据编程即可获取扩展能力


冗余

可以采用一对多的方式，一个生产者发布消息，可以被多个订阅 topic 的服务消费到，供多个毫无关联的业务使用


健壮性

消息队列可以堆积请求，所以消费端业务即使短时间死掉，也不会影响主要业务的正常进行


异步通信

很多时候，用户不想也不需要立即处理消息
消息队列提供了异步处理机制，允许用户把一个消息放入队列，但并不立即处理它
想向队列中放入多少消息就放多少，然后在需要的时候再去处理它们



2.什么是 broker
broker 是消息的代理
Producers 往 Brokers 里面的指定 Topic 中写消息，Consumers 从 Brokers 里 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/30/kafka%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/" title="Kafka基础知识"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Kafka/kafka.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Kafka基础知识"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/30/kafka%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/" title="Kafka基础知识">Kafka基础知识</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-30T01:47:38.000Z" title="发表于 2022-10-30 09:47:38">2022-10-30</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E4%B8%AD%E9%97%B4%E4%BB%B6/">中间件</a></span></div><div class="content">Kafka 基础知识1.Kafka 概述
定义

传统定义

Kafka 是一个分布式的基于发布&#x2F;订阅模式的消息队列（MessageQueue），主要应用于大数据实时处理领域


最新定义

Kafka 是一个开源的分布式事件流平台（Event StreamingPlatform），被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用




消息队列

消息队列有哪些

目前企业中比较常见的消息队列产品主要有 Kafka、ActiveMQ 、RabbitMQ 、RocketMQ 等
在大数据场景主要采用 Kafka 作为消息队列
在 JavaEE 开发中主要采用 ActiveMQ、RabbitMQ、RocketMQ


消息队列应用场景

传统的消息队列的主要应用场景包括：缓存消峰、解耦、异步通信





消息队列的两种模式

点对点模式：消费消息只能发布到一个主题， 消费完成就删除消息，且只有一个消费者
发布 &#x2F; 订阅模式：消息可以发布到多个主题， 消息一般保留七天，且有多个消费者





基础架构

在 Kafka2.8 版本前，Zookeepe ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/28/SpringCloud%E9%9D%A2%E7%BB%8F/" title="SpringCloud面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Java/Spring/Spring.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="SpringCloud面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/28/SpringCloud%E9%9D%A2%E7%BB%8F/" title="SpringCloud面经">SpringCloud面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-28T00:24:55.000Z" title="发表于 2022-10-28 08:24:55">2022-10-28</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Spring/">Spring</a></span></div><div class="content">Spring Cloud 面经1.什么是微服务架构
微服务架构定义

微服务架构就是将单体的应用程序分成多个应用程序，这多个应用程序就成为微服务，每个微服务运行在自己的进程中，并使用轻量级的机制通信
这些服务围绕业务能力来划分，并通过自动化部署机制来独立部署
这些服务可以使用不同的编程语言，不同数据库，以保证最低限度的集中式管理


Spring Cloud 是什么

Spring Cloud 是一系列框架的有序集合
它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发，如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等，都可以用 Spring Boot 的开发风格做到一键启动和部署
Spring Cloud 并没有重复制造轮子，它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来，通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理，最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包


Spring Cloud 作用

首先 Spring Cloud 基于 Spring Boot  ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/27/SpringBoot%E9%9D%A2%E7%BB%8F/" title="SpringBoot面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Java/Spring/Spring.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="SpringBoot面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/27/SpringBoot%E9%9D%A2%E7%BB%8F/" title="SpringBoot面经">SpringBoot面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-27T02:39:30.000Z" title="发表于 2022-10-27 10:39:30">2022-10-27</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Spring/">Spring</a></span></div><div class="content">Spring Boot 面经1.Spring Boot 简介
什么是 Spring Boot

通过 Spring Boot，可以轻松地创建独立的、基于生产级别的 Spring 的应用程序
大多数 Spring Boot 应用程序只需要最少的 Spring 配置


为什么要用 Spring Boot

快速开发，快速整合，配置简化、内嵌服务容器 


Spring Boot 的优缺点

优点
容易上手，提升开发效率，为 Spring 开发提供一个更快、更简单的开发框架
开箱即用，远离繁琐的配置
提供了一系列大型项目通用的非业务性功能，例如：内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等
SpringBoot 总结就是使编码变简单、配置变简单、部署变简单、监控变简单等等


缺点
由于不用自己做的配置，报错时很难定位




Spring Boot 和 Spring Cloud 的区别

Spring Boot 是快速开发的 Spring 框架
Spring Cloud 是完整的微服务框架
Spring Cloud 依赖于 Spring Boot


Spring Bo ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/26/SpringMVC%E9%9D%A2%E7%BB%8F/" title="SpringMVC面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Java/Spring/Spring.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="SpringMVC面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/26/SpringMVC%E9%9D%A2%E7%BB%8F/" title="SpringMVC面经">SpringMVC面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-26T12:39:30.000Z" title="发表于 2022-10-26 20:39:30">2022-10-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Spring/">Spring</a></span></div><div class="content">Spring MVC 面经1.Spring MVC
MVC 是什么

MVC 即 Model、View、Controller
MVC 是一种三层架构的设计模式
用于实现前端页面展示与后端业务数据处理的分离


MVC 模型的优点

分层设计

实现了业务系统各个组件之间的解耦，有利于业务系统的可扩展性、可维护性


有利于系统并行开发，提高效率



Spring MVC 定义

Spring MVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web 框架
通过把 模型-视图-控制器 分离，将 web 层进行职责解耦，把复杂的 web 应用分成逻辑清晰的几部分，简化开发，减少出错，方便组内开发人员之间的配合


Spring MVC 工作原理

客户端发送请求到 DispatcherServlet

DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller

Controller 调用业务逻辑后，返回 ModelAndView

DispatcherServlet 查询 ModelAndView，找到指定 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/23/Spring%E9%9D%A2%E7%BB%8F/" title="Spring面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Java/Spring/Spring.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Spring面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/23/Spring%E9%9D%A2%E7%BB%8F/" title="Spring面经">Spring面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-23T02:22:30.000Z" title="发表于 2022-10-23 10:22:30">2022-10-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Spring/">Spring</a></span></div><div class="content">Spring 面经1.Spring、SpringMVC、SpringBoot、SpringCloud 的区别与联系
Spring 框架如下图

 

四者简介

Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

能够编写更干净、更可管理、并且更易于测试的代码


Spring MVC 是 Spring 的一个模块，一个 web 框架

通过 Dispatcher Servlet、ModelAndView、View Resolver，开发 web 应用变得很容易
主要针对网站应用程序或者服务开发——URL 路由、Session、模板引擎、静态 Web 资源等等


Spring boot 简化了 spring 的配置流程

Spring 配置复杂，繁琐，所以推出了 Spring boot
约定优于配置


Spring Cloud 构建于 Spring Boot 之上

是一个关注全局的服务治理框架




Spring 和 SpringMVC

Spring 是一个一站式的轻量级的 java 开发框架，核心是控制反转（IOC）和面向切面（AOP），针对于开 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/22/Linux%E9%9D%A2%E7%BB%8F/" title="Linux面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Linux/Linux.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Linux面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/22/Linux%E9%9D%A2%E7%BB%8F/" title="Linux面经">Linux面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-22T10:26:17.000Z" title="发表于 2022-10-22 18:26:17">2022-10-22</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Others/">Others</a></span></div><div class="content">Linux 面经1.Linux 介绍
什么是 Linux

Linux 是一套免费使用和自由传播的类似 Unix 操作系统，一般的 WEB 项目都是部署都是放在 Linux 操作系统上面
Linux 是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统
能运行主要的 Unix 工具软件、应用程序和网络协议
支持 32 位和 64 位硬件
Linux 继承了 Unix 以网络为核心的设计思想，是一个性能稳定的多用户网络操作系统


Windows 和 Linux 的区别

Windows 是微软开发的操作系统，民用操作系统，可用于娱乐、影音、上网
Windows 操作系统具有强大的日志记录系统和强大的桌面应用，使用非常方便
Linux 的应用相对单纯很多，但是 Linux 的性能是非常出色的，可以完全针对机器的配置有针对性的优化
简单来说 Windows 适合普通用户进行娱乐办公使用，Linux 适合软件开发部署


Unix 和 Linux 的区别

Linux 和 Unix 都是功能强大的操作系统，有很多相似之处
以下是两者区别


开源行

L ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/18/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E9%9D%A2%E7%BB%8F/" title="计算机网络面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/Computer%20Network.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="计算机网络面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/18/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E9%9D%A2%E7%BB%8F/" title="计算机网络面经">计算机网络面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-18T00:16:17.000Z" title="发表于 2022-10-18 08:16:17">2022-10-18</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Others/">Others</a></span></div><div class="content">计算机网络面经1.HTTPS 详解
前置知识

对称加密算法

就是加密和解密使用同一个密钥的加密算法
因为加密方和解密方使用的密钥相同，所以称为称为对称加密，也称为单钥加密方法


优点：加密和解密运算速度快，所以通常在消息发送方需要加密大量数据时使用
缺点：安全性差，如果一方的密钥遭泄露，那么整个通信就会被破解。另外加密之前双方需要同步密钥
常用算法：DES、AES


非对称加密算法

非对称加密算法需要两个密钥来进行加密和解密，这两个秘钥是公开密钥（public key，简称公钥）和私有密钥（private key，简称私钥）
公钥和私钥是一对：公钥用来加密，私钥解密，而且公钥是公开的，私钥是自己保存的
不需要像对称加密那样在通信之前要先同步秘钥


优点：安全性更好，私钥是自己保存的，不需要像对称加密那样在通信之前要先同步秘钥
缺点：加密和解密花费时间长、速度慢，只适合对少量数据进行加密
常用算法：RSA


Hash 算法

也称为消息摘要算法。将任意长度的二进制值映射为较短的固定长度的二进制值，该二进制值称为哈希值
常用于检验数据的完整性，检验数据没有被篡改过


常用算 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/17/%E6%95%B0%E6%8D%AE%E5%BA%93%E9%9D%A2%E7%BB%8F/" title="数据库面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Java/Database/DataBase.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="数据库面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/17/%E6%95%B0%E6%8D%AE%E5%BA%93%E9%9D%A2%E7%BB%8F/" title="数据库面经">数据库面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-17T02:51:17.000Z" title="发表于 2022-10-17 10:51:17">2022-10-17</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/DataBase/">DataBase</a></span></div><div class="content">数据库面经1.数据库三大范式

第一范式

字段具有原子性，不可再分
所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的，不可再分


第二范式

是在第一范式（1NF）的基础上建立起来的，即满足第二范式（2NF）必须先满足第一范式（1NF）
要求数据库表中的每个实例或行必须可以被唯一地区分
通常需要为表加上一个列，以存储各个实例的惟一标识
这个唯一属性列被称为主关键字或主键


第三范式

必须先满足第二范式（2NF）
第三范式（3NF）要求一个数据库表中不包含已在其它表中已包含的非主关键字信息
所以第三范式具有如下特征： 

每一列只有一个值
每一行都能区分
每一个表都不包含其他表已经包含的非主关键字信息




2.MySQL 有关权限的表
MySQL 服务器通过权限表来控制用户对数据库的访问，权限表存放在 mysql 数据库里，由mysql_install_db 脚本初始化
这些权限表分别 user，db，table_priv，columns_priv、host
下面分别介绍一下这些表的结构和内容：

user 权限表：记录允许连接到服务器的用户帐号信息，里面的权 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2022/10/16/Nginx%E9%9D%A2%E7%BB%8F/" title="Nginx面经"><img class="post_bg" src="https://study-record-images.oss-cn-beijing.aliyuncs.com/Java/Nginx/Nginx.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Nginx面经"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/10/16/Nginx%E9%9D%A2%E7%BB%8F/" title="Nginx面经">Nginx面经</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-10-16T11:33:08.000Z" title="发表于 2022-10-16 19:33:08">2022-10-16</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/Others/">Others</a></span></div><div class="content">Nginx 面经1.Nginx 介绍
什么是 Nginx

Nginx是一个 轻量级 &#x2F; 高性能的反向代理Web服务器，用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议
Nginx 实现非常高效的反向代理、负载平衡，可以处理 2-3 万并发连接数，官方监测能支持 5万并发，现在中国使用 nginx 网站用户有很多，例如：新浪、网易、 腾讯等


Nginx 优点

跨平台、配置简单

非阻塞、高并发连接：处理 2-3 万并发连接数，官方监测能支持 5 万并发

内存消耗小：开启 10 个 Nginx 才占 150M 内存

成本低廉，且开源

稳定性高，宕机的概率非常小

内置的健康检查功能

如果有一个服务器宕机，会做一个健康检查，再发送的请求就不会发送到宕机的服务器了，而是重新将请求提交到其他的节点上




Nginx 应用场景

http 服务器

Nginx 是一个 http 服务，可以独立提供 http 服务
可以做网页静态服务器


虚拟主机

可以实现在一台服务器虚拟出多个网站，例如个人网站使用的虚拟机


反向代理，负载均衡

当网站的访问 ...</div></div></div><nav id="pagination"><div class="pagination"><a class="extend prev" rel="prev" href="/"><i class="fas fa-chevron-left fa-fw"></i></a><a class="page-number" href="/">1</a><span class="page-number current">2</span><a class="page-number" href="/page/3/#content-inner">3</a><span class="space">&hellip;</span><a class="page-number" href="/page/5/#content-inner">5</a><a class="extend next" rel="next" href="/page/3/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://s2.loli.net/2022/09/22/36LN4kcjYOd9HT8.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">zcm</div><div class="author-info__description"></div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">43</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">25</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">11</div></a></div></div><div class="sticky_layout"><div class="card-widget card-categories"><div class="item-headline">
            <i class="fas fa-folder-open"></i>
            <span>分类</span>
            
            </div>
            <ul class="card-category-list" id="aside-cat-list">
            <li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Algorithm/"><span class="card-category-list-name">Algorithm</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Android/"><span class="card-category-list-name">Android</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Applet/"><span class="card-category-list-name">Applet</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/DataBase/"><span class="card-category-list-name">DataBase</span><span class="card-category-list-count">3</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Java/"><span class="card-category-list-name">Java</span><span class="card-category-list-count">11</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Others/"><span class="card-category-list-name">Others</span><span class="card-category-list-count">7</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Spring/"><span class="card-category-list-name">Spring</span><span class="card-category-list-count">8</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Tips/"><span class="card-category-list-name">Tips</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E4%B8%AD%E9%97%B4%E4%BB%B6/"><span class="card-category-list-name">中间件</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%A4%A7%E6%95%B0%E6%8D%AE/"><span class="card-category-list-name">大数据</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E9%9D%A2%E7%BB%8F/"><span class="card-category-list-name">面经</span><span class="card-category-list-count">14</span></a></li>
            </ul></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
    <i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/05/"><span class="card-archive-list-date">五月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/04/"><span class="card-archive-list-date">四月 2023</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/03/"><span class="card-archive-list-date">三月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/12/"><span class="card-archive-list-date">十二月 2022</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/11/"><span class="card-archive-list-date">十一月 2022</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/10/"><span class="card-archive-list-date">十月 2022</span><span class="card-archive-list-count">16</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/09/"><span class="card-archive-list-date">九月 2022</span><span class="card-archive-list-count">11</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2020/08/"><span class="card-archive-list-date">八月 2020</span><span class="card-archive-list-count">4</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">43</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2023-05-18T11:46:04.550Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">508.4k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-05-18T11:46:04.703Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2022 - 2023 By zcm</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span>  数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script src="/js/search/local-search.js"></script><div class="js-pjax"></div><script src="/js/categories.js?v1"></script><script src="/js/navigation.js?v1"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>